/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package la.foton.homebroker.negocio.validador;

import la.foton.homebroker.negocio.entidade.Acao;
import la.foton.homebroker.negocio.entidade.enumeracoes.TipoAcao;

import org.junit.Test;

/**
 * @author luiz
 */
public class ValidadorTeste
{

	@Test(expected = ViolacaoNegocioException.class)
	public void validaCamposObrigatoriosNaoInformados() throws ViolacaoNegocioException
	{
		Validador.valida(new Acao());
	}

	@Test
	public void validaCamposObrigatoriosInformados() throws ViolacaoNegocioException
	{
		Acao acao = new Acao();
		acao.setDescricao("Acao de teste");
		acao.setCodigo("TEST4");
		acao.setTipo(TipoAcao.ORDINARIA);
		Validador.valida(acao);
	}
	
	@Test(expected=ViolacaoNegocioException.class)
	public void validaPadraoSiglaAcaoInvalida() throws ViolacaoNegocioException {
		Acao acao = new Acao();
		acao.setDescricao("Sigla invalida");
		acao.setCodigo("INV4");
		acao.setTipo(TipoAcao.ORDINARIA);
		Validador.valida(acao);
	}
	
	@Test
	public void validaPadraoSiglaAcaoPermiteMercadoATermo() throws ViolacaoNegocioException {
		Acao acao = new Acao();
		acao.setDescricao("Sigla com T no final representando mercado a termo");
		acao.setCodigo("USIM5T");
		acao.setTipo(TipoAcao.ORDINARIA);
		Validador.valida(acao);
	}
	
	@Test
	public void validaPadraoSiglaAcaoPermiteMercadoDeOpcoes() throws ViolacaoNegocioException {
		Acao acao = new Acao();
		acao.setDescricao("Quinta letra da sigla representa mês de vencimento");
		acao.setCodigo("PETRA4");
		acao.setTipo(TipoAcao.ORDINARIA);
		Validador.valida(acao);
	}
}
